const fs = require('fs');
const path = require('path');

// 此种方法仅适合小的文件的读写，读取完之后再开始写入文件
// fs.readFile(path.resolve(__dirname, '01.buffer.js'), (err, data) => {
//     if (err) return console.log(err)
//     fs.writeFile(path.resolve(__dirname, '01.test.js'), data, function (err, data) {
//         console.log(data)
//     })
// })
// 于是乎我们思考能不能一边读一边写入呢
const buf = Buffer.alloc(3);
fs.open(path.resolve(__dirname, '01.test.js'), 'r', (err, fd) => {
    console.log(fd)
    // fd 是file description 是一个number类型
    // 读取a.txt 将读取到的内容写入到buffer的第0个位置写3个，从文件的第0个位置开始读取
    fs.read(fd, buf, 0, 3, 0, (err, bytesRead) => {
        console.log(bytesRead)
        // bytesRead 读取到的真实个数
        fs.open(path.resolve(__dirname, '02.test.js'), 'w', function (err, wfd) {
            console.log(wfd,'wfd')
            // 将buffer的数据从0开始读取3个，写入到文件的第0个位置
            fs.write(wfd, buf, 0, 3, 0, (err, written) => {
                console.log(written)
                fs.close(fd, () => { })
                fs.close(wfd, () => { })
            })
        })
    })
})